草庐IT

C++调用Python API

全部标签

c# - 如何在 .NET 中动态调用类的方法?

如何将类和方法名称作为字符串传递并调用该类的方法?喜欢voidcaller(stringmyclass,stringmymethod){//callmyclass.mymethod();}谢谢 最佳答案 您将要使用reflection.这是一个简单的例子:usingSystem;usingSystem.Reflection;classProgram{staticvoidMain(){caller("Foo","Bar");}staticvoidcaller(Stringmyclass,Stringmymethod){//Getaty

c# - RunWorkerAsync调用一次,BackgroundWorker的DoWork被调用两次?

我已经在它工作的类中创建了一个后台worker,但是如果我调用并等到结束运行,第二次调用它,它会执行两次相同的过程我认为bw.DoWork+=有问题privatevoidbutton1_Click(objectsender,EventArgse){nptest.test.start("null","null");}namespacenptest{classtest{publicstaticvoidstart(stringstr,stringstrb){if(bw.IsBusy!=true){bw.WorkerSupportsCancellation=true;bw.DoWork+=(o

c# - 调用 ToString ("YYYY-mm-dd") 导致错误的日期格式

我有一个采用DateTime对象的构造函数:publicReport(DateTimedate,stringstart="0",stringend="0"){Logger.Info("CreatinganewReport...");StartTime=start;EndTime=end;Date=date.ToString("YYYY-mm-dd");SetStartEndTimes();Logger.Info("ReportCreated");}现在,这在3天前还运行良好。但是,我今天休息后回来,这是我看到的结果:如您所见,传入的日期是正确的。但是格式化之后,就不是了。同样,这在我休

C#:虚函数调用甚至比委托(delegate)调用更快?

我刚好遇到一个代码设计问题。比如说,我有一个"template"方法可以调用一些可能“改变”的函数。一个直观的设计是遵循“模板设计模式”。将更改函数定义为要在子类中覆盖的“虚拟”函数。或者,我可以只使用没有“虚拟”的委托(delegate)函数。委托(delegate)函数被注入(inject),以便它们也可以被定制。最初,我认为第二种“委托(delegate)”方式会比“虚拟”方式更快,但一些代码片段证明它是不正确的。在下面的代码中,第一个DoSomething方法遵循“模板模式”。它调用虚方法IsTokenChar。第二种DoSomthing方法不依赖于虚函数。相反,它有一个传递委

c# - 在 if() 中调用方法 - C#

我有几个方法会根据它们的成功返回bool值,在IF()内部调用这些方法有什么问题吗?//&&makessurethatMethod2()willonlygetcalledifMethod1()returnedtrue,use&tocallbothmethodsif(Method1()&&Method2()){//dostuffifbothmethodsreturnedTRUE}如果Method1()返回FALSE,Method2()不需要触发。如果上面的代码有任何问题,请告诉我。谢谢。编辑:由于代码没有任何问题,我会接受最有信息的答案...添加评论以解决“新手&&&”问题

c# - 如何在 C# 中调用 protected 构造函数?

如何调用protected构造函数?publicclassFoo{publicFoo(alotofarguments){}protectedFoo(){}}varfoo=???这显然没有通过测试:publicclassFooMock:Foo{}varfoo=newFooMock();Assert(typeof(Foo),foo.GetType()); 最佳答案 调用无参数保护/私有(private)构造函数:Foofoo=(Foo)Activator.CreateInstance(typeof(Foo),true);调用带参数的非公

c# - 在不使用 WIFI 的情况下在 WCF 服务调用中包含 SAML 2.0 token

我正在尝试设置受ADFS保护的WCF服务。我目前能够请求token并使用WIF和ThinktectureIdentityModel4.5将其与请求一起发送,代码如下:staticSecurityTokenGetToken(){varfactory=newWSTrustChannelFactory(newUserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential),"https://fs2.server2012.local/adfs/services/trust/13/usernamemixed"){TrustVe

c# - 为什么对泛型的显式接口(interface)调用总是调用基础实现?

为什么在具有接口(interface)类型约束的泛型方法中显式C#接口(interface)调用总是调用基实现?例如,考虑以下代码:publicinterfaceIBase{stringMethod();}publicinterfaceIDerived:IBase{newstringMethod();}publicclassFoo:IDerived{stringIBase.Method(){return"IBase.Method";}stringIDerived.Method(){return"IDerived.Method";}}staticclassProgram{staticvo

c# - 告诉 FxCop 另一个方法正在调用 dispose

通常,当您处置私有(private)成员时,您可能会执行以下操作:publicvoidDispose(){varlocalInst=this.privateMember;if(localInst!=null){localInst.Dispose();}}局部赋值的目的是避免竞争条件,即另一个线程可能在null检查后将私有(private)成员赋值为null。在这种情况下,我不关心Dispose是否在实例上被调用了两次。我一直使用这个模式,所以我写了一个扩展方法来做到这一点:publicstaticvoidSafeDispose(thisIDisposabledisposable){if

c# - 使用托管代码包装器从 64 位托管代码调用 32 位非托管代码的最佳方式

随着64位机器和应用程序的普及,我遇到必须从托管64位进程调用native32位代码的情况的频率正在增加。我不想将我的应用程序标记为32位,并且我无法获得正在调用的代码的64位版本。我目前使用的解决方案是创建从进程加载的C++COM垫片,以便从64位进程进行32位调用。这种COMshim解决方案运行良好,跨进程调用由COM在幕后处理,从而最大限度地减少了这种方法的开销。不过,我想保留我们使用C#进行的所有新开发,并想知道是否有任何框架可以最大限度地减少这样做的开销。我看过IPCChannel,但我觉得这种方法不如COMshim解决方案那么简洁。谢谢,埃德 最